package magda.edytor.dane;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JSeparator;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import javax.swing.JList;

import dietmar.ckm3.Id;
import dietmar.ckm3.Zapis;

public class DruzynaGUI extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	 JList list;
	Druzyna druzyna = new Druzyna() ;
	Klub klub ;
	KlubGUI klubGUI;
	Zawodnik zawodnik;
	ZawodnikGUII zawodnikGUI;
	private int id;
	/**
	 * Launch the application.
	 */

	/**
	 * Create the frame.
	 */
	public DruzynaGUI() {
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 450, 398);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JButton btnZapiszDruzyne = new JButton("Zapisz");
		btnZapiszDruzyne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapiszDruzyne();
			}
		});
		btnZapiszDruzyne.setBounds(303, 32, 89, 23);
		contentPane.add(btnZapiszDruzyne);
		
		JLabel lblNazwaDruyny = new JLabel("Nazwa dru\u017Cyny:");
		lblNazwaDruyny.setFont(lblNazwaDruyny.getFont().deriveFont(lblNazwaDruyny.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblNazwaDruyny.setBounds(10, 11, 94, 14);
		contentPane.add(lblNazwaDruyny);
		
		textField = new JTextField();
		textField.setBounds(10, 33, 283, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JLabel lblZawodnik = new JLabel("Trener :");
		lblZawodnik.setFont(lblZawodnik.getFont().deriveFont(lblZawodnik.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblZawodnik.setBounds(10, 72, 81, 14);
		contentPane.add(lblZawodnik);
		
		JLabel lblImie = new JLabel("Imie:");
		lblImie.setBounds(10, 95, 46, 14);
		contentPane.add(lblImie);
		
		textField_1 = new JTextField();
		textField_1.setBounds(42, 92, 223, 20);
		contentPane.add(textField_1);
		textField_1.setColumns(10);
		
		JLabel lblNazwisko = new JLabel("Nazwisko:");
		lblNazwisko.setBounds(10, 126, 61, 14);
		contentPane.add(lblNazwisko);
		
		textField_2 = new JTextField();
		textField_2.setBounds(76, 123, 189, 20);
		contentPane.add(textField_2);
		textField_2.setColumns(10);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(10, 157, 414, 2);
		contentPane.add(separator);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(10, 64, 414, 2);
		contentPane.add(separator_1);
		
		JButton btnZapisz = new JButton("Zapisz dane trenera");
		btnZapisz.setBounds(275, 123, 149, 23);
		contentPane.add(btnZapisz);
		
		btnZapisz.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					 zapiszTrener();
			 }
		});
		
		
		JButton btnZapiszDane = new JButton("Dodaj zawodnika");
		btnZapiszDane.setBounds(275, 195, 139, 23);
		contentPane.add(btnZapiszDane);
		
		btnZapiszDane.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					 dodaj();
			 }
		});
		
		JButton btnZapiszDane_1 = new JButton("Zamknij");
		btnZapiszDane_1.setFont(btnZapiszDane_1.getFont().deriveFont(btnZapiszDane_1.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		btnZapiszDane_1.setBounds(335, 326, 89, 23);
		contentPane.add(btnZapiszDane_1);
		JScrollPane sp = new JScrollPane();
		contentPane.add(sp);

		btnZapiszDane_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
				
			}
		});
		
	
		
		JLabel lblZawodnicy = new JLabel("Zawodnicy:");
		lblZawodnicy.setFont(lblZawodnicy.getFont().deriveFont(lblZawodnicy.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblZawodnicy.setBounds(10, 169, 81, 14);
		contentPane.add(lblZawodnicy);
		
		list = new JList();
		list.setBounds(10, 184, 239, 165);
		contentPane.add(list);
		list.setListData(druzyna.getSklad());
		
		
		JButton btnEdytujZawodnika = new JButton("Edytuj zawodnika");
		btnEdytujZawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				edytuj();
			}
		});
		btnEdytujZawodnika.setBounds(275, 229, 139, 23);
		contentPane.add(btnEdytujZawodnika);
		
		JButton btnUsuZawodnika = new JButton("Usu\u0144 zawodnika");
		btnUsuZawodnika.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				usuwanie();
			}
		});
		btnUsuZawodnika.setBounds(275, 263, 139, 23);
		contentPane.add(btnUsuZawodnika);
		
		
	}
	
	public void dodaj(){
		
		  zawodnikGUI = new ZawodnikGUII();
		  zawodnik = new Zawodnik();
		 zawodnikGUI.setDruzynaGUI(this);
		 zawodnikGUI.getDruzynaGUI().setDruzyna(druzyna);
		 	zawodnikGUI.setVisible(true);
		 	zawodnikGUI.setZawodnik(zawodnik);

	}
	
	public void zapiszDruzyne(){
		
		if(klubGUI.getList().getSelectedIndex()<0){
			id=Idd.idDruzyny();
			druzyna.setNazwa(textField.getText());
			klubGUI.getKlub().dodajDruzyne(druzyna);
			klubGUI.getList().setListData(klubGUI.getKlub().getDruzyny());
			System.out.println(druzyna.getNazwa());
			druzyna.setId(id);
		}
		else{
			edycja(klubGUI.getKlub().zwrocDruzyne(klubGUI.getList().getSelectedIndex()));
			klubGUI.getList().setListData(klubGUI.getKlub().getDruzyny());

		}
	}
		
	public void zapiszTrener(){
		
			String imie = (textField_1.getText());
			String nazwisko = (textField_2.getText());
			Trener trener = new Trener(imie,nazwisko);
			druzyna.dodajTrenera(trener);
			System.out.println("Zapisuje trenera");
		}
	
	public void edycja(Druzyna druzyna){
		druzyna.setNazwa(textField.getText());
		druzyna.setId(id);
	}
	
	public void edytuj(){
		dodaj();
		
		zawodnikGUI.getTextField().setText(druzyna.zwrocZawodnika(getList().getSelectedIndex()).getImie());
		zawodnikGUI.getTextField_1().setText(druzyna.zwrocZawodnika(getList().getSelectedIndex()).getNazwisko());
		zawodnikGUI.getTextField_2().setText(Integer.toString((druzyna.zwrocZawodnika(getList().getSelectedIndex()).getWiek())));
		zawodnikGUI.getTextField_3().setText(Double.toString(druzyna.zwrocZawodnika(getList().getSelectedIndex()).getUmiejetnosci()));
		
		
	}
	void uzupelnienie(){
		getList().setListData(klubGUI.getKlub().zwrocDruzyne(klubGUI.getList().getSelectedIndex()).getSklad());
		getTextField().setText(klubGUI.getKlub().zwrocDruzyne(klubGUI.getList().getSelectedIndex()).getNazwa());
		list.setListData(druzyna.getSklad());
		getTextField_1().setText(getDruzyna().getTrener().toStringI());
		getTextField_2().setText(getDruzyna().getTrener().toStringN());
	}
	
	public void usuwanie(){
		druzyna.usunZawodnika(list.getSelectedIndex());
		list.setListData(druzyna.getSklad());
	}

	public  JList getList() {
		return list;
	}

	public void setList(JList list) {
		this.list = list;
	}

	public Druzyna getDruzyna() {
		return druzyna;
	}

	public void setDruzyna(Druzyna druzyna) {
		this.druzyna = druzyna;
	}

	public Klub getKlub() {
		return klub;
	}

	public void setKlub(Klub klub) {
		this.klub = klub;
	}

	public KlubGUI getKlubGUI() {
		return klubGUI;
	}

	public void setKlubGUI(KlubGUI klubGUI) {
		this.klubGUI = klubGUI;
	}

	public JTextField getTextField() {
		return textField;
	}

	public void setTextField(JTextField textField) {
		this.textField = textField;
	}

	public JTextField getTextField_1() {
		return textField_1;
	}

	public void setTextField_1(JTextField textField_1) {
		this.textField_1 = textField_1;
	}

	public JTextField getTextField_2() {
		return textField_2;
	}

	public void setTextField_2(JTextField textField_2) {
		this.textField_2 = textField_2;
	}

	public Zawodnik getZawodnik() {
		return zawodnik;
	}

	public void setZawodnik(Zawodnik zawodnik) {
		this.zawodnik = zawodnik;
	}

	public ZawodnikGUII getZawodnikGUI() {
		return zawodnikGUI;
	}

	public void setZawodnikGUI(ZawodnikGUII zawodnikGUI) {
		this.zawodnikGUI = zawodnikGUI;
	}
}
